<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>函数</title>
	<script type="text/javascript">
		/*
			1.立即创建一个新的对象
			2.将新建的对象设置为函数中的this，在构造函数中可以使用this来引用新建的对象
			3.逐行执行函数中的代码
			4.将新建的对象作为返回值返回
		*/
		function Person(name,age,gender){
			this.name = name;
			this.age = age;
			this.gender = gender;
			//this.sayName = fun;
		}
		/*
		function fun(){
			alert(this.name);
		}
		*/
		/*
			创建构造函数时，可以将这些对象共有的属性和方法，
			统一添加到构造函数的原型对象中，
			不会影响全局作用域
		*/
		//向原型对象中添加sayName方法
		Person.prototype.sayName = function(){
			alert(this.name);
		}

		var per = new Person("孙悟空",20,"男");

		//当我们直接在页面中打开一个对象时，实际上是输出对象的
		//tostring（）方法的返回值；
		//如果我们希望在输出对象时不输出[object Object] ，可以
		//为对象添加一个tostring（）方法；
		Person.prototype.toString = function(){
			return "Person[name="+this.name+",age="+this.age+",gender="+this.gender+"]";
		}
		document.write(per);

		//console.log(per);
	</script>
</head>
<body>
</body>
</html>